/* 
    throttle节流函数 
    规定在一个单位时间内， 只能触发一次函数。 如果这个单位时间内触发多次函数， 只有一次生效。
    当函数需要频繁触发时，函数执行一次之后，只有大于设定的执行周期后才会执行第二次
    如 窗口调整(resize)
    页面滚动(scroll)
    DOM元素拖拽功能实现(mousemove)
    抢购疯狂点击(click)
*/

function throttle(callback, wait) {
    // 定义开始时间
    let start = 0;
    // 返回结果是一个函数
    return function (e) {
        // 获取当前时间戳
        let now = Date.now();
        if (now - start >= wait) {
            // 如果满足条件 就执行回调函数
            callback.call(this, e)
            start = now;
        }
    }
}